package com.zhw.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.Bean;
/**
 * @EnableDiscoveryClient：通过该注解，像服务中心注册
 * @author hongwei.zhang
 *
 */
import org.springframework.web.client.RestTemplate;
/**
 * Spring cloud有两种服务调用方式，一种是Ribbon+restTemplate,另一种是feign
 * Ribbon是一个负载均衡客户端，可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。
 * 
 * 本项目演示：Ribbon+restTemplate
 * pom.xml文件添加依赖 ：spring-cloud-starter-eureka、spring-cloud-starter-ribbon、spring-boot-starter-web
 * 
 * 
 * @EnableDiscoveryClient 通过此注解像服务中心注册
 * @author hongwei.zhang
 */
@EnableDiscoveryClient
@SpringBootApplication
@EnableHystrix
public class CloudRibbon1Application {

	public static void main(String[] args) {
		SpringApplication.run(CloudRibbon1Application.class, args);
	}
	/**
	 * @Bean  向ioc容器注册RestTemplate对象
	 * @LoadBalanced 此注解，代表进行负载均衡
	 * @return
	 */
	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
}
